/**
 * 
 */
package gmu.drr.entity;

/** 
 * @author RothmD01
 */
public class User {

	/** 
	 * @uml.property name="userAux"
	 * @uml.associationEnd inverse="user:gmu.drr.entity.UserAux"
	 * @uml.association name="auxInfo"
	 */
	private UserAux userAux;

	/** 
	 * Getter of the property <tt>userAux</tt>
	 * @return  Returns the userAux.
	 * @uml.property  name="userAux"
	 */
	public UserAux getUserAux() {
		return userAux;
	}

	/** 
	 * Setter of the property <tt>userAux</tt>
	 * @param userAux  The userAux to set.
	 * @uml.property  name="userAux"
	 */
	public void setUserAux(UserAux userAux) {
		this.userAux = userAux;
	}

	/**
	 * The unique identifier for the user entity.  NOT an index into arrays
	 * @uml.property  name="userNo"
	 */
	private long userNo;

	/**
	 * Getter of the property <tt>userNo</tt>
	 * @return  Returns the userNo.
	 * @uml.property  name="userNo"
	 */
	public long getUserNo() {
		return userNo;
	}

	/**
	 * Setter of the property <tt>userNo</tt>
	 * @param userNo  The userNo to set.
	 * @uml.property  name="userNo"
	 */
	public void setUserNo(long userNo) {
		this.userNo = userNo;
	}

	/**
	 * An index into arrays based on a particular context.  Definition of context TBD.
	 * @uml.property  name="contextInd"
	 */
	private int contextInd = -1;

	/**
	 * Getter of the property <tt>contextInd</tt>
	 * @return  Returns the contextInd.
	 * @uml.property  name="contextInd"
	 */
	public int getContextInd() {
		return contextInd;
	}

	/**
	 * Setter of the property <tt>contextInd</tt>
	 * @param contextInd  The contextInd to set.
	 * @uml.property  name="contextInd"
	 */
	public void setContextInd(int contextInd) {
		this.contextInd = contextInd;
	}

	/**
	 * @uml.property  name="netNode"
	 * @uml.associationEnd  inverse="user:gmu.drr.entity.NetNode"
	 */
	private NetNode netNode;

	/**
	 * Getter of the property <tt>netNode</tt>
	 * @return  Returns the netNode.
	 * @uml.property  name="netNode"
	 */
	public NetNode getNetNode() {
		return netNode;
	}

	/**
	 * Setter of the property <tt>netNode</tt>
	 * @param netNode  The netNode to set.
	 * @uml.property  name="netNode"
	 */
	public void setNetNode(NetNode netNode) {
		this.netNode = netNode;
	}

	public User() {
		netNode = new NetNode( this );
	}

	public User(UserAux userAux, long userNo, NetNode netNode) {
		if( userAux != null ) this.userAux = userAux;
		if( userNo > 0 ) this.userNo = userNo;
		if( netNode != null ) this.netNode = netNode;
	}
	
	

}
